package com.second.client.util;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.second.common.pojo.R;

/**
 * @program: clms-second
 * @description: 分页后的查询数据工具类
 * @author: Lv Yongqi
 * @create: 2021-07-26 08:27
 **/
public class PageData {

    /**
     * 自定义多表联合查询后数据进行分页
     * @param page 开启分页后返回的page对象
     * @param pageList 自定义多表联合查询得到的list集合
     * @return 分页自定义查询的数据
     */
    public static R returnPage(Page page, Page pageList) {
        if (pageList != null ) {
            // 获取总条数
            int total = (int) page.getTotal();
            return R.success().putObject(total).putListData(pageList.getRecords());
        }
        return R.error();
    }

    /**
     * 按条件查询后的数据进行分页
     * @param baseMapper dao层服务对象
     * @param page 开启分页后返回的page对象
     * @param queryWrapper 条件查询对象
     * @param <T> 实体类
     * @return 分页条件查询的数据
     */
    public static <T> R conditionalPage(BaseMapper<T> baseMapper, Page page, QueryWrapper queryWrapper) {

        // 分页按条件查询
        Page<T> selectPage = baseMapper.selectPage(page, queryWrapper);

        // 返回数据
        if (selectPage != null) {
            return R.success().putObject(selectPage);
        }
        return R.error();
    }

}
